The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Changes 012
MANIFEST 52
META.yml 915
Makefile.PL 22
README 52
bin/cpantest 3830
dist.ini 080
lib/Test/Reporter/Transport/File.pm 95
lib/Test/Reporter/Transport/HTTPGateway.pm 107
lib/Test/Reporter/Transport/Mail/Send.pm 97
lib/Test/Reporter/Transport/Net/SMTP/TLS.pm 95
lib/Test/Reporter/Transport/Net/SMTP.pm 97
lib/Test/Reporter/Transport.pm 94
lib/Test/Reporter.pm 1951
t/1-reporter.t 218
t/2-http-transport.t 03
t/3-file-transport.t 02
t/4-net-smtp-transport.t 410
t/5-net-smtp-tls-transport.t 02
t/6-write-read-crlf.t 35
xt/pod-coverage.t 140
xt/pod.t 80
xt/release/pod-coverage.t 220
xt/release/pod-syntax.t 150
24 files changed (This is a version diff) 220259
@@ -3,6 +3,16 @@ Revision history for Perl extension Test::Reporter.
 For the complete changelog, visit:
 http://github.com/dagolden/test-reporter/commits/master
 
+1.57      2010-03-26 00:13:18 EST5EDT
+
+        - Includes full 'perl -V' output, not just Config::mychanges
+
+        - Adds new 'X-Test-Reporter-Perl' header with Perl version 
+          and optional "RCx" suffix to positively identify tests from
+          RC Perls
+
+        - Minimum perl version is now 5.006, matching the rest of the Perl toolchain
+
 1.56      2010-03-14 23:26:00 EST5EDT
 
         - Convert line endings during read() [Issue identified
@@ -15,6 +25,8 @@ http://github.com/dagolden/test-reporter/commits/master
 
         - Regenerate _myconfig data during read() method
 
+        - Switched to Dist::Zilla for release management
+
 1.54 Sun May 31 21:39:12 EDT 2009
 
         - POD updates.
@@ -8,6 +8,7 @@ META.yml
 Makefile.PL
 README
 bin/cpantest
+dist.ini
 lib/Test/Reporter.pm
 lib/Test/Reporter/Transport.pm
 lib/Test/Reporter/Transport/File.pm
@@ -22,8 +23,4 @@ t/3-file-transport.t
 t/4-net-smtp-transport.t
 t/5-net-smtp-tls-transport.t
 t/6-write-read-crlf.t
-xt/pod-coverage.t
-xt/pod.t
-xt/release/meta-yaml.t
-xt/release/pod-coverage.t
-xt/release/pod-syntax.t
\ No newline at end of file
+xt/release/meta-yaml.t
\ No newline at end of file
@@ -10,34 +10,39 @@ author:
 build_requires: {}
 configure_requires:
   ExtUtils::MakeMaker: 6.11
-generated_by: 'Dist::Zilla version 1.100660'
+generated_by: 'Dist::Zilla version 1.100711'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
   version: 1.4
 name: Test-Reporter
+no_index:
+  directory:
+    - t
+    - xt
+    - examples
 provides:
   Test::Reporter:
     file: lib/Test/Reporter.pm
-    version: 1.56
+    version: 1.57
   Test::Reporter::Transport:
     file: lib/Test/Reporter/Transport.pm
-    version: 1.56
+    version: 1.57
   Test::Reporter::Transport::File:
     file: lib/Test/Reporter/Transport/File.pm
-    version: 1.56
+    version: 1.57
   Test::Reporter::Transport::HTTPGateway:
     file: lib/Test/Reporter/Transport/HTTPGateway.pm
-    version: 1.56
+    version: 1.57
   Test::Reporter::Transport::Mail::Send:
     file: lib/Test/Reporter/Transport/Mail/Send.pm
-    version: 1.56
+    version: 1.57
   Test::Reporter::Transport::Net::SMTP:
     file: lib/Test/Reporter/Transport/Net/SMTP.pm
-    version: 1.56
+    version: 1.57
   Test::Reporter::Transport::Net::SMTP::TLS:
     file: lib/Test/Reporter/Transport/Net/SMTP/TLS.pm
-    version: 1.56
+    version: 1.57
 requires:
   Carp: 0
   Cwd: 0
@@ -51,6 +56,7 @@ requires:
   Time::Local: 0
   base: 0
   constant: 0
+  perl: 5.006
 resources:
   repository: http://github.com/dagolden/test-reporter
-version: 1.56
+version: 1.57
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-
+ BEGIN { require 5.006; } 
 
 use ExtUtils::MakeMaker 6.11;
 
@@ -23,7 +23,7 @@ my %WriteMakefileArgs = (
                        'EXE_FILES' => [
                                         'bin/cpantest'
                                       ],
-                       'VERSION' => '1.56',
+                       'VERSION' => '1.57',
                        'PREREQ_PM' => {
                                         'base' => '0',
                                         'Data::Dumper' => '0',
@@ -1,8 +1,8 @@
 NAME
-    Test::Reporter
+    Test::Reporter - sends test results to cpan-testers@perl.org
 
 VERSION
-    version 1.56
+    version 1.57
 
 SYNOPSIS
       use Test::Reporter;
@@ -39,9 +39,6 @@ DESCRIPTION
     CPAN Testers project. Test::Reporter has wide support for various
     perl5's and platforms.
 
-NAME
-    Test::Reporter - sends test results to cpan-testers@perl.org
-
 METHODS
     *   address
 
@@ -7,38 +7,24 @@
 # This is free software; you can redistribute it and/or modify it under
 # the same terms as the Perl 5 programming language system itself.
 # 
-
-# cpantest - sends test results to cpan-testers@perl.org
-#
-# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Adam J. Foxson.
-# Copyright (C) 2004, 2005 Richard Soderberg.
-# Copyright (C) 2002 Audrey Tang.
-# Copyright (C) 1999 Kurt Starsinic.
-# All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the same terms as Perl itself.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
+use 5.006;
 use strict;
+use warnings;
+package main;
+our $VERSION = '1.57';
+# NAME: cpantest
+# ABSTRACT: Report test results of a package retrieved from CPAN
+
 use Cwd;
 use Getopt::Long;
 use File::Temp;
 use Test::Reporter;
 use vars qw(
-    $VERSION $Grade $Package $No_comment $Automatic $Comment_text $Comment_file
+    $Grade $Package $No_comment $Automatic $Comment_text $Comment_file
     %Grades $CC $Report $Tempfile $Subject $Reporter $From $Dump $Perl_version
     $Transport
 );
 
-$VERSION       = '1.56';
 ($Tempfile, $Report) = File::Temp::tempfile(UNLINK => 1);
 $Reporter      = Test::Reporter->new();
 %Grades        = (
@@ -282,11 +268,17 @@ sub log {
     close(LOG);
 }
 
-__END__
+
+
+=pod
 
 =head1 NAME
 
-B<cpantest> - Report test results of a package retrieved from CPAN
+cpantest - Report test results of a package retrieved from CPAN
+
+=head1 VERSION
+
+version 1.57
 
 =head1 DESCRIPTION
 
@@ -362,22 +354,22 @@ further information.
 
 =head1 AUTHORS
 
-This version of the 'cpantest' script was adapted by Adam J. Foxson
-E<lt>F<afoxson@pobox.com>E<gt> for Test::Reporter, and is based on
-Audrey Tang's E<lt>cpan@audreyt.orgE<gt> adaptations for
-CPANPLUS, which is in turn based upon the original script by Kurt
-Starsinic E<lt>F<Kurt.Starsinic@isinet.com>E<gt> with various patches
-from the CPAN Testers E<lt>F<cpan-testers@perl.org>E<gt>.
+  Adam J. Foxson <afoxson@pobox.com>
+  David Golden <dagolden@cpan.org>
+  Kirrily "Skud" Robert <skud@cpan.org>
+  Ricardo Signes <rjbs@cpan.org>
+  Richard Soderberg <rsod@cpan.org>
+  Kurt Starsinic <Kurt.Starsinic@isinet.com>
 
-=head1 COPYRIGHT
+=head1 COPYRIGHT AND LICENSE
 
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Adam J. Foxson.
- Copyright (C) 2004, 2005 Richard Soderberg.
- Copyright (C) 2002 Audrey Tang.
- Copyright (C) 1999 Kurt Starsinic.
- All rights reserved.
+This software is copyright (c) 2010 by Authors and Contributors.
 
- This program is free software; you may redistribute it
- and/or modify it under the same terms as Perl itself.
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
 
 =cut
+
+
+__END__
+
@@ -0,0 +1,80 @@
+name    = Test-Reporter
+author  = Adam J. Foxson <afoxson@pobox.com>
+author  = David Golden <dagolden@cpan.org>
+author  = Kirrily "Skud" Robert <skud@cpan.org>
+author  = Ricardo Signes <rjbs@cpan.org>
+author  = Richard Soderberg <rsod@cpan.org>
+author  = Kurt Starsinic <Kurt.Starsinic@isinet.com>
+license = Perl_5
+copyright_holder = Authors and Contributors
+
+[BumpVersionFromGit]
+version_regexp = ^release-(.+)$
+
+; -- fetch & generate files
+[AllFiles]
+[CompileTests]
+fake_home = 1
+skip = Test::Reporter::Transport::
+;[CriticTests]
+[MetaTests]
+;[PodTests]
+
+; -- remove some files
+[PruneCruft]
+
+; -- get prereqs
+[Prereq]
+; MAINTAIN BY HAND - OR WE PICK UP TRANSPORT PREREQS
+perl                           = 5.006
+Carp                           = 0
+Cwd                            = 0
+File::Temp                     = 0
+FileHandle                     = 0
+Net::SMTP                      = 0
+Sys::Hostname                  = 0
+Time::Local                    = 0
+base                           = 0
+constant                       = 0
+Data::Dumper                   = 0
+File::Find                     = 0
+Test::More                     = 0.88
+
+; -- munge files
+[PkgVersion]
+[NextRelease]
+[PodWeaver]
+[Prepender]
+
+; -- dynamic meta-information
+[InstallDirs]
+[MetaProvides::Package]
+[Repository]
+git_remote = github
+
+; -- generate meta files
+[MetaNoIndex]
+directory = t
+directory = xt
+directory = examples
+[License]
+[MakeMaker]
+[MetaYAML]
+[ReadmeFromPod]
+[Manifest] ; should come last
+
+; -- pre-release
+[CheckExtraTests]
+[Git::Check]
+
+; -- release
+[UploadToCPAN]
+
+; -- post-release
+[Git::Commit]
+[Git::Tag]
+tag_format = release-%v
+[Git::Push]
+push_to = origin
+push_to = github
+
@@ -9,10 +9,10 @@
 use strict;
 BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
 package Test::Reporter::Transport::File;
+our $VERSION = '1.57';
+# ABSTRACT: File transport for Test::Reporter
+
 use base 'Test::Reporter::Transport';
-use vars qw/$VERSION/;
-$VERSION = '1.56';
-$VERSION = eval $VERSION;
 
 sub new {
   my ($class, $dir) = @_;
@@ -37,11 +37,11 @@ sub send {
 
 =head1 NAME
 
-Test::Reporter::Transport::File
+Test::Reporter::Transport::File - File transport for Test::Reporter
 
 =head1 VERSION
 
-version 1.56
+version 1.57
 
 =head1 SYNOPSIS
 
@@ -60,10 +60,6 @@ uploaded using C<< Test::Reporter->read() >>.
 
     Test::Reporter->new->read( $file )->send();
 
-=head1 NAME
-
-Test::Reporter::Transport::File - File transport for Test::Reporter
-
 =head1 USAGE
 
 See L<Test::Reporter> and L<Test::Reporter::Transport> for general usage
@@ -9,10 +9,10 @@
 use strict;
 BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
 package Test::Reporter::Transport::HTTPGateway;
+our $VERSION = '1.57';
+# ABSTRACT: HTTP transport for Test::Reporter
+
 use base 'Test::Reporter::Transport';
-use vars qw/$VERSION/;
-$VERSION = '1.56';
-$VERSION = eval $VERSION;
 
 use LWP::UserAgent;
 
@@ -33,7 +33,7 @@ sub send {
   my $report_version = $report->VERSION;
   my $via = "$report_class $report_version";
   $via .= ', via ' . $report->via if $report->via;
-
+  my $perl_version = $report->perl_version->{_version};
   # post the report
   my $ua = LWP::UserAgent->new;
   $ua->timeout(60);
@@ -42,6 +42,7 @@ sub send {
   my $form = {
     key     => $self->{key},
     via     => $via,
+    perl_version => $perl_version,
     from    => $report->from,
     subject => $report->subject,
     report  => $report->report,
@@ -62,11 +63,11 @@ sub send {
 
 =head1 NAME
 
-Test::Reporter::Transport::HTTPGateway
+Test::Reporter::Transport::HTTPGateway - HTTP transport for Test::Reporter
 
 =head1 VERSION
 
-version 1.56
+version 1.57
 
 =head1 SYNOPSIS
 
@@ -80,10 +81,6 @@ version 1.56
 This module transmits a Test::Reporter report via HTTP to a
 L<Test::Reporter::HTTPGateway> server (or something with an equivalent API).
 
-=head1 NAME
-
-Test::Reporter::Transport::HTTPGateway - HTTP transport for Test::Reporter
-
 =head1 USAGE
 
 See L<Test::Reporter> and L<Test::Reporter::Transport> for general usage
@@ -9,10 +9,10 @@
 use strict;
 BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
 package Test::Reporter::Transport::Mail::Send;
+our $VERSION = '1.57';
+# ABSTRACT: Mail::Send transport for Test::Reporter
+
 use base 'Test::Reporter::Transport';
-use vars qw/$VERSION/;
-$VERSION = '1.56';
-$VERSION = eval $VERSION;
 
 use Mail::Send;
 
@@ -25,6 +25,7 @@ sub send {
     my ($self, $report, $recipients) = @_;
     $recipients ||= [];
 
+    my $perl_version = $report->perl_version->{_version};
     my $via = $report->via();
     my $msg = Mail::Send->new();
 
@@ -41,6 +42,7 @@ sub send {
     $msg->set('From', $report->from());
     $msg->subject($report->subject());
     $msg->add('X-Reported-Via', "Test::Reporter $Test::Reporter::VERSION$via");
+    $msg->add('X-Test-Reporter-Perl', $perl_version);
     $msg->add('Cc', $cc_str) if $cc_str;
 
     my $fh = $msg->open( @{ $self->{args} } );
@@ -58,11 +60,11 @@ sub send {
 
 =head1 NAME
 
-Test::Reporter::Transport::Mail::Send
+Test::Reporter::Transport::Mail::Send - Mail::Send transport for Test::Reporter
 
 =head1 VERSION
 
-version 1.56
+version 1.57
 
 =head1 SYNOPSIS
 
@@ -75,10 +77,6 @@ version 1.56
 
 This module transmits a Test::Reporter report using Mail::Send.
 
-=head1 NAME
-
-Test::Reporter::Transport::Mail::Send - Mail::Send transport for Test::Reporter
-
 =head1 USAGE
 
 See L<Test::Reporter> and L<Test::Reporter::Transport> for general usage
@@ -9,10 +9,10 @@
 use strict;
 BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
 package Test::Reporter::Transport::Net::SMTP::TLS;
+our $VERSION = '1.57';
+# ABSTRACT: Authenticated SMTP transport for Test::Reporter
+
 use base 'Test::Reporter::Transport::Net::SMTP';
-use vars qw/$VERSION/;
-$VERSION = '1.56';
-$VERSION = eval $VERSION;
 
 use Net::SMTP::TLS;
 
@@ -24,11 +24,11 @@ use Net::SMTP::TLS;
 
 =head1 NAME
 
-Test::Reporter::Transport::Net::SMTP::TLS
+Test::Reporter::Transport::Net::SMTP::TLS - Authenticated SMTP transport for Test::Reporter
 
 =head1 VERSION
 
-version 1.56
+version 1.57
 
 =head1 SYNOPSIS
 
@@ -41,10 +41,6 @@ version 1.56
 
 This module transmits a Test::Reporter report using Net::SMTP::TLS.
 
-=head1 NAME
-
-Test::Reporter::Transport::Net::SMTP::TLS - Authenticated SMTP transport for Test::Reporter
-
 =head1 USAGE
 
 See L<Test::Reporter> and L<Test::Reporter::Transport> for general usage
@@ -9,10 +9,10 @@
 use strict;
 BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
 package Test::Reporter::Transport::Net::SMTP;
+our $VERSION = '1.57';
+# ABSTRACT: SMTP transport for Test::Reporter
+
 use base 'Test::Reporter::Transport';
-use vars qw/$VERSION/;
-$VERSION = '1.56';
-$VERSION = eval $VERSION;
 
 sub new {
     my ($class, @args) = @_;
@@ -144,6 +144,7 @@ sub send {
     my ($self, $report, $recipients) = @_;
     $recipients ||= [];
 
+    my $perl_version = $report->perl_version->{_version};
     my $helo          = $report->_maildomain(); # XXX: tight -- rjbs, 2008-04-06
     my $from          = $report->from();
     my $via           = $report->via();
@@ -226,6 +227,7 @@ sub send {
         if ( @$recipients ) { $smtp->datasend("Cc: $cc_str\n") or $die->() };
         $smtp->datasend("Message-ID: ", $report->message_id(), "\n") or $die->();
         $smtp->datasend("X-Reported-Via: Test::Reporter $Test::Reporter::VERSION$via\n") or $die->();
+        $smtp->datasend("X-Test-Reporter-Perl: $perl_version\n") or $die->();
         if ( $needs_qp ) {
             $smtp->datasend("MIME-Version: 1.0\n");
             $smtp->datasend("Content-Type: text/plain; charset=utf-8\n");
@@ -251,11 +253,11 @@ sub send {
 
 =head1 NAME
 
-Test::Reporter::Transport::Net::SMTP
+Test::Reporter::Transport::Net::SMTP - SMTP transport for Test::Reporter
 
 =head1 VERSION
 
-version 1.56
+version 1.57
 
 =head1 SYNOPSIS
 
@@ -267,10 +269,6 @@ version 1.56
 
 This module transmits a Test::Reporter report using Net::SMTP.
 
-=head1 NAME
-
-Test::Reporter::Transport::Net::SMTP - SMTP transport for Test::Reporter
-
 =head1 USAGE
 
 See L<Test::Reporter> and L<Test::Reporter::Transport> for general usage
@@ -9,9 +9,8 @@
 use strict;
 BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
 package Test::Reporter::Transport;
-use vars qw/$VERSION/;
-$VERSION = '1.56';
-$VERSION = eval $VERSION;
+our $VERSION = '1.57';
+# ABSTRACT: base class for Test::Reporter transports
 
 sub new     { die "Not implemented" }
 
@@ -25,11 +24,11 @@ sub send    { die "Not implemented" }
 
 =head1 NAME
 
-Test::Reporter::Transport
+Test::Reporter::Transport - base class for Test::Reporter transports
 
 =head1 VERSION
 
-version 1.56
+version 1.57
 
 =head1 SYNOPSIS
 
@@ -48,10 +47,6 @@ This module is an abstract base class that define an API for
 Test::Reporter::Transport subclasses.  Individual subclasses MUST 
 implement the methods described below.
 
-=head1 NAME
-
-Test::Reporter::Transport - base class for Test::Reporter transports
-
 =head1 USAGE
 
 A transport method is specified to Test::Reporter using the C<transport>
@@ -6,10 +6,13 @@
 # This is free software; you can redistribute it and/or modify it under
 # the same terms as the Perl 5 programming language system itself.
 # 
-package Test::Reporter;
-use 5.005;
+use 5.006;
 use strict;
-BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
+use warnings;
+package Test::Reporter;
+our $VERSION = '1.57';
+# ABSTRACT: sends test results to cpan-testers@perl.org
+
 use Cwd;
 use Config;
 use Carp;
@@ -18,13 +21,11 @@ use FileHandle;
 use File::Temp;
 use Sys::Hostname;
 use Time::Local ();
-use vars qw($VERSION $AUTOLOAD $Tempfile $Report $DNS $Domain $Send);
+use vars qw($AUTOLOAD $Tempfile $Report $DNS $Domain $Send);
 use constant FAKE_NO_NET_DNS => 0;    # for debugging only
 use constant FAKE_NO_NET_DOMAIN => 0; # for debugging only
 use constant FAKE_NO_MAIL_SEND => 0;  # for debugging only
 
-$VERSION = '1.56';
-
 local $^W = 1;
 
 sub new {
@@ -51,7 +52,6 @@ sub new {
         '_perl_version'      => {
             '_archname' => $Config{archname},
             '_osvers'   => $Config{osvers},
-            '_myconfig' => Config::myconfig(),
         },
         '_transport'         => '',
         '_transport_args'    => [],
@@ -60,6 +60,9 @@ sub new {
 
     bless $self, $class;
 
+    $self->{_perl_version}{_myconfig} = $self->_get_perl_V;
+    $self->{_perl_version}{_version} = $self->_normalize_perl_version;
+
     $self->{_attr} = {   
         map {$_ => 1} qw(   
             _address _distribution _distfile _comments _errstr _via _timeout _debug _dir
@@ -191,7 +194,7 @@ sub grade {
 }
 
 sub transport {
-    my $self = shift;
+  my $self = shift;
     warn __PACKAGE__, ": transport\n" if $self->debug();
 
     return $self->{_transport} unless scalar @_;
@@ -281,6 +284,15 @@ sub send {
     return 1;
 }
 
+sub _normalize_perl_version {
+  my $self = shift;
+  my $perl_version = sprintf("v%vd",$^V);
+  my $perl_V = $self->perl_version->{_myconfig};
+  my ($rc) = $perl_V =~ /Locally applied patches:\n\s+(RC\d+)/m;
+  $perl_version .= " $rc" if $rc;
+  return $perl_version;
+}
+
 sub write {
     my $self = shift;
     warn __PACKAGE__, ": write\n" if $self->debug();
@@ -292,6 +304,7 @@ sub write {
     my $grade = $self->grade();
     my $dir = $self->dir() || cwd;
     my $distfile = $self->{_distfile} || '';
+    my $perl_version = $self->perl_version->{_version};
 
     return unless $self->_verify();
 
@@ -320,6 +333,7 @@ sub write {
     if ($distfile ne '') {
       print $fh "X-Test-Reporter-Distfile: $distfile\n";
     }
+    print $fh "X-Test-Reporter-Perl: $perl_version\n";
     print $fh "Subject: $subject\n";
     print $fh "Report: $report";
     unless ($_[0]) {
@@ -367,6 +381,8 @@ sub read {
           $self->{_subject_lock} = 1;
         } elsif ($header eq "X-Test-Reporter-Distfile") {
           $self->{_distfile} = $content;
+        } elsif ($header eq "X-Test-Reporter-Perl") {
+          $self->{_perl_version}{_version} = $content;
         } elsif ($header eq "Report") {
           last;
         }
@@ -377,7 +393,7 @@ sub read {
     if ( $self->{_from} && $self->{_subject} ) {
       ($self->{_report}) = ($buffer =~ /^.+?Report:\s(.+)$/s);
       my ($perlv) = $self->{_report} =~ /(^Summary of my perl5.*)\z/ms;
-      $self->{_myconfig} = $perlv if $perlv;
+      $self->{_perl_version}{_myconfig} = $perlv if $perlv;
       $self->{_report_lock} = 1;
     }
 
@@ -481,6 +497,9 @@ sub transport_args {
     return @{ $self->{_transport_args} };
 }
 
+# quote for command-line perl
+sub _get_sh_quote { ( ($^O eq "MSWin32") || ($^O eq 'VMS') ) ? '"' : "'" }
+
 
 sub perl_version  {
     my $self = shift;
@@ -488,23 +507,40 @@ sub perl_version  {
 
     if( @_) {
         my $perl = shift;
-        my $q = ( ($^O eq "MSWin32") || ($^O eq 'VMS') ) ? '"' : "'"; # quote for command-line perl
+        my $q = $self->_get_sh_quote; 
         my $magick = int(rand(1000));                                 # just to check that we get a valid result back
-        my $cmd  = "$perl -MConfig -e$q print qq{$magick\n\$Config{archname}\n\$Config{osvers}\n},Config::myconfig();$q";
+        my $cmd  = "$perl -MConfig -e$q print qq{$magick\n\$Config{archname}\n\$Config{osvers}\n};$q";
         if($^O eq 'VMS'){
             my $sh = $Config{'sh'};
-            $cmd  = "$sh $perl $q-MConfig$q -e$q print qq{$magick\\n\$Config{archname}\\n\$Config{osvers}\\n},Config::myconfig();$q";
+            $cmd  = "$sh $perl $q-MConfig$q -e$q print qq{$magick\\n\$Config{archname}\\n\$Config{osvers}\\n};$q";
         }
         my $conf = `$cmd`;
+        chomp $conf;
         my %conf;
-        ( @conf{ qw( magick _archname _osvers _myconfig) } ) = split( /\n/, $conf, 4);
+        ( @conf{ qw( magick _archname _osvers) } ) = split( /\n/, $conf, 3);
         croak __PACKAGE__, ": cannot get perl version info from $perl: $conf" if( $conf{magick} ne $magick);
         delete $conf{magick};
+        $conf{_myconfig} = $self->_get_perl_V($perl);
+        chomp $conf;
         $self->{_perl_version} = \%conf;
    }
    return $self->{_perl_version};
 }
 
+sub _get_perl_V {
+    my $self = shift;
+    my $perl ||= $^X;
+    my $q = $self->_get_sh_quote; 
+    my $cmdv = "$perl -V";
+    if($^O eq 'VMS'){
+        my $sh = $Config{'sh'};
+        $cmdv = "$sh $perl $q-V$q";
+    }
+    my $perl_V = `$cmdv`;
+    chomp $perl_V;
+    return $perl_V;
+}
+
 sub AUTOLOAD {
     my $self               = $_[0];
     my ($package, $method) = ($AUTOLOAD =~ /(.*)::(.*)/);
@@ -743,11 +779,11 @@ sub _is_a_perl_release {
 
 =head1 NAME
 
-Test::Reporter
+Test::Reporter - sends test results to cpan-testers@perl.org
 
 =head1 VERSION
 
-version 1.56
+version 1.57
 
 =head1 SYNOPSIS
 
@@ -786,10 +822,6 @@ Test::Reporter reports the test results of any given distribution to the CPAN
 Testers project. Test::Reporter has wide support for various perl5's and
 platforms. 
 
-=head1 NAME
-
-Test::Reporter - sends test results to cpan-testers@perl.org
-
 =head1 METHODS
 
 =over 4
@@ -14,9 +14,11 @@ use Test::More;
 use Test::Reporter;
 use Data::Dumper;
 
-plan tests => 131;
+$Test::Reporter::VERSION ||= 999; # dzil will set it for us on release
 
-my $distro = sprintf "Test-Reporter-%s", $Test::Reporter::VERSION;
+plan tests => 129;
+
+my $distro = "Foo-Bar-1.23";
 my $distfile = "AUTHOR/" . $distro . ".tar.gz";
 
 my $reporter = Test::Reporter->new();
@@ -122,12 +124,13 @@ $reporter = Test::Reporter->new
 );
 isa_ok($reporter, 'Test::Reporter');
 my $file = $reporter->write();
-like($file, '/Test-Reporter/');
+like($file, "/$distro/");
 ok(-e $file);
 
 my $orig_subject = $reporter->subject;
 my $orig_from = $reporter->from;
 my $orig_report = $reporter->report;
+my $orig_perl_version = $reporter->perl_version->{_version};
 
 undef $reporter;
 
@@ -141,12 +144,13 @@ like($reporter->report,'/Summary of my/');
 is($reporter->grade, 'pass');
 is($reporter->distribution, $distro);
 is($reporter->distfile, $distfile);
-like($reporter->{_myconfig}, '/Summary of my/', "Regenerated _myconfig");
+like($reporter->perl_version->{_myconfig}, '/Summary of my/', "Regenerated _myconfig");
 
 # confirm roundtrip -- particularly newlines
 is($reporter->subject, $orig_subject);
 is($reporter->from, $orig_from);
 is($reporter->report, $orig_report);
+is($reporter->perl_version->{_version}, $orig_perl_version, 'perl version roundtrip');
 
 unlink $file;
 
@@ -157,23 +161,6 @@ my $same_version = $reporter->perl_version($^X);
 for my $field ( qw( _archname _osvers _myconfig) )
   { is( $no_version->{$field}, $same_version->{$field}); }
 
-# testing perl-version with a fake perl
-# create fake perl
-{
-    my $fh = FileHandle->new();
-    open( $fh, ">$alt_perl") or die "cannot create (fake) $alt_perl: $!";
-    # fake perl, still needs to grab the magick number!
-    print {$fh} qq{(\$m= join( '', \@ARGV))=~ s{\\D}{}g; print "\$m\nnew_archname\nnew_osvers\nnew_myconfig\n(several lines)"; };
-    close $fh;
-
-    my $alt_perl_version = $reporter->perl_version("$^X $alt_perl");
-    is( $reporter->perl_version->{_archname}, 'new_archname');
-    is( $reporter->perl_version->{_osvers}, 'new_osvers');
-    like( $reporter->perl_version->{_myconfig}, '/^new_myconfig\n\(several lines\)/s'); # VMS has trailing CRLF
-
-    1 while (unlink $alt_perl);
-}
-
 # testing error
 {
     my $fh = FileHandle->new();
@@ -11,6 +11,8 @@
 use strict;
 use Test::More;
 
+$Test::Reporter::VERSION ||= 999; # dzil will set it for us on release
+
 # hack-mock LWP::UserAgent
 BEGIN {
     $INC{"LWP/UserAgent.pm"} = 1;
@@ -69,6 +71,7 @@ $reporter->from($from);
 my $form = {
     key     => 123456789,
     via     => my $via = "Test::Reporter ${Test::Reporter::VERSION}",
+    perl_version    => $reporter->perl_version->{_version},
     from    => $from,
     subject => $reporter->subject(),
     report  => $reporter->report(),
@@ -13,6 +13,8 @@ use Test::More;
 use File::Temp;
 use File::Find;
 
+$Test::Reporter::VERSION ||= 999; # dzil will set it for us on release
+
 #--------------------------------------------------------------------------#
 
 my $from = 'johndoe@example.net';
@@ -11,6 +11,8 @@
 use strict;
 use Test::More;
 
+$Test::Reporter::VERSION ||= 999; # dzil will set it for us on release
+
 # hack-mock Net::SMTP
 BEGIN {
     $INC{"Net/SMTP.pm"} = 1;
@@ -23,8 +25,9 @@ BEGIN {
     sub quit { return $Response }
     sub AUTOLOAD {
         my $self = shift;
-        if ( @_ ) { $Data{ $AUTOLOAD } = [ @_ ] }
-        return @{ $Data{ $AUTOLOAD } || [] };
+        (my $method = $AUTOLOAD) =~ s{^Net::SMTP::}{};
+        if ( @_ ) { push @{ $Data{ $method } }, @_ }
+        return 1;
     }
     
 }
@@ -35,7 +38,7 @@ my $from = 'johndoe@example.net';
 
 #--------------------------------------------------------------------------#
 
-plan tests => 4;
+plan tests => 5;
 
 require_ok( 'Test::Reporter' );
 
@@ -52,7 +55,6 @@ $reporter->distfile('ASPIERS/Mail-Freshmeat-1.20.tar.gz');
 $reporter->from($from);
 
 my $form = {
-    key     => 123456789,
     via     => my $via = "Test::Reporter ${Test::Reporter::VERSION}",
     from    => $from,
     subject => $reporter->subject(),
@@ -63,6 +65,10 @@ my $form = {
     local $Net::SMTP::Data;
     my $rc = $reporter->send;
     ok( $rc, "send() is true when successful" ) or diag $reporter->errstr;
+    ok( ( grep { /X-Test-Reporter-Perl: v5\.\d+\.\d+/ } @{$Net::SMTP::Data{datasend}}),
+      "saw X-Test-Reporter-Perl header"
+    );
+
 }
 
 {
@@ -11,6 +11,8 @@
 use strict;
 use Test::More;
 
+$Test::Reporter::VERSION ||= 999; # dzil will set it for us on release
+
 # hack-mock Net::SMTP::TLS
 BEGIN {
     package Net::SMTP::TLS;
@@ -14,12 +14,14 @@ use Test::More;
 use Test::Reporter;
 use Data::Dumper;
 
+$Test::Reporter::VERSION ||= 999; # dzil will set it for us on release
+
 plan tests => 14;
 
 my $CR   = "\015";
 my $LF   = "\012";
 
-my $distro = sprintf "Test-Reporter-%s", $Test::Reporter::VERSION;
+my $distro = "Foo-Bar-1.23";
 my $distfile = "AUTHOR/" . $distro . ".tar.gz";
 
 my $reporter = Test::Reporter->new
@@ -31,7 +33,7 @@ my $reporter = Test::Reporter->new
 );
 isa_ok($reporter, 'Test::Reporter');
 my $file = $reporter->write();
-like($file, '/Test-Reporter/');
+like($file, "/$distro/");
 ok(-e $file);
 my $orig_subject = $reporter->subject;
 my $orig_from = $reporter->from;
@@ -64,7 +66,7 @@ like($reporter->report,'/Summary of my/');
 is($reporter->grade, 'pass');
 is($reporter->distribution, $distro);
 is($reporter->distfile, $distfile);
-like($reporter->{_myconfig}, '/Summary of my/', "Regenerated _myconfig");
+like($reporter->perl_version->{_myconfig}, '/Summary of my/', "Regenerated _myconfig");
 
 # confirm roundtrip -- particularly newlines
 is($reporter->subject, $orig_subject);
@@ -1,14 +0,0 @@
-use Test::More;
-my $min_tpc = 1.08;
-eval "use Test::Pod::Coverage $min_tpc";
-plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage"
-    if $@;
-
-my $min_pc = 0.17;
-eval "use Pod::Coverage $min_pc";
-plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage"
-    if $@;
-
-all_pod_coverage_ok();
-__END__
-use Test::Pod::Coverage; # Fake CPANTS
@@ -1,8 +0,0 @@
-use Test::More;
-my $min_tp = 1.22;
-eval "use Test::Pod $min_tp";
-plan skip_all => "Test::Pod $min_tp required for testing POD" if $@;
-
-all_pod_files_ok();
-__END__
-use Test::Pod; # Fake CPANTS
@@ -1,22 +0,0 @@
-#!perl
-# 
-# This file is part of Test-Reporter
-# 
-# This software is copyright (c) 2010 by Authors and Contributors.
-# 
-# This is free software; you can redistribute it and/or modify it under
-# the same terms as the Perl 5 programming language system itself.
-# 
-
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
-  if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
-  if $@;
-
-all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
-
@@ -1,15 +0,0 @@
-#!perl
-# 
-# This file is part of Test-Reporter
-# 
-# This software is copyright (c) 2010 by Authors and Contributors.
-# 
-# This is free software; you can redistribute it and/or modify it under
-# the same terms as the Perl 5 programming language system itself.
-# 
-use Test::More;
-
-eval "use Test::Pod 1.00";
-plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
-
-all_pod_files_ok();